import Vue from 'vue'
import App from './App.vue'
import router from '@/router'
import store from './store'
// 启动mock服务
import '@/mocks/mockServer'

import TypeNav from '@/components/TypeNav'
import CarouseComponent from '@/components/Carouse'
import Pagination from '@/components/Pagination'

// 将整个api接口函数添加到Vue原型上
import * as api from '@/api/Detail'
// 引用element组件库
import { MessageBox } from 'element-ui';
// 引用正则验证文件
import '@/utils/validate.js' 

// 声明使用图片懒加载
import VueLazyLoad from 'vue-lazyload'
import imgurl from '@/assets/1.jpg'
Vue.use(VueLazyLoad,{
  loading:imgurl  //默认图片 请求为完成时，显示的图片
})

Vue.config.productionTip = false

Vue.component('TypeNav',TypeNav)
// 全局注册轮播图组件
Vue.component('CarouseComponent',CarouseComponent)
Vue.component('PaginationComponent',Pagination)

new Vue({
  beforeCreate(){
    // 安装全局事件总线
    Vue.prototype.$bus = this
    // 将api接口文件暴露的整个对象放到Vue原型身上，所有组件可以通过 this.$api调用接口中的函数
    Vue.prototype.$api = api
    // 将element组件库中的弹框方法添加到Vue的原型上
    Vue.prototype.$msgbox = MessageBox;
    Vue.prototype.$alert = MessageBox.alert;
  },
  store,
  router,
  render: h => h(App),
}).$mount('#app')
